package com.xiaoxi.open.design.creation.factorymethodpattern.service.waer.factory;

import com.xiaoxi.open.design.creation.factorymethodpattern.service.waer.product.ClothesProduct;
import com.xiaoxi.open.design.creation.factorymethodpattern.service.waer.product.WearProduct;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author xiaoxi
 * @ProjectName creation_pattern
 * @PackageName com.xiaoxi.open.design.creation.factorymethodpattern.service.waer
 * @ClassName WearFactory
 * @Description TODO
 * @Date 2024/5/15 11:46
 * @Version 1.0
 */
@Service
@Slf4j
public class ClothesFactory implements Factory {

    // 花花公子工厂，穿搭产品
    private List<WearProduct> wearProducts = new ArrayList<>();

    @Override
    public WearProduct createProduct(String name) {

        // 按照springboot的形式，这里工厂生产完产品，产品是会入库的。
        // 为了快速能了解 工厂方法定义，不做过多的，展示
        WearProduct wearProduct = new ClothesProduct(name);
        wearProducts.add(wearProduct);

        return wearProduct;

    }

    @Override
    public List<WearProduct> getProducts() {
        // 按照springboot的形式，应直接取工厂下面所有的产品。
        // 为了快速能了解 工厂方法定义，这里仅将list输出
        return wearProducts;
    }

}